package cn.wolfcode.mp.mapper;

import cn.wolfcode.mp.domain.Employee;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 * 1: EmployeeMapper并没有定义crud方法,为什么在测试类可以直接用呢?
 *    EmployeeMapper 继承了BaseMapper接口,自然可以继承BaseMapper接口定义crud方法了
 *
 * 2: 项目中并没有写crud sql语句,为什么可以执行crud操作呢?
 *    分析: 项目中没写sql,却实现了crud功能.说明mybatis-plus 自动拼接sql
 *    分析: mybatis-plus是怎么拼接sql的?
 *    以查询为例: SELECT  id,name,password,email,age,admin,dept_id  FROM employee
 *    分析: 要想拼接查询sql,最核心点: 找出 表名 和 列
 *    分析: 观察发现
 *          表名跟mapper接口操作实体对象类一样
 *          列名跟mapper接口操作实体对象属性名一样
 *          那么是否可以使用java中 内省机制,将实体对象的类解析得到简单类名做表名,类的属性名
 *          作为列名,上面sql就可以拼接出来了
 */
public interface EmployeeMapper extends BaseMapper<Employee> {

    List<Employee> listByXmlSingle();

    List<Employee> listByXmlJoin();
}
